The present invention relates in general to computer input devices, and in particular to keyboards and other devices operating as Universal Serial Bus (xe2x80x9cUSBxe2x80x9d) devices which operate in a plurality of modes.
Within the past few years, an association of private manufacturers has created a universal standard and method for linking many peripherals to a personal computer simultaneously. This standard is called the Universal Serial Bus (USB). The USB is a communications architecture or xe2x80x9cbusxe2x80x9d that provides a personal computer with the ability to interconnect to a wide variety of devices or peripherals via a relatively simple cable. The cabled peripherals share USB bandwidth through a host-scheduled, polling based protocol. The bus allows peripherals to be attached, configured, used, and detached while the host and other peripherals are in operation. USB allows for the replacement of peripherals that have previously been attached to special-purpose interfaces and accessed by direct-hardware methods.
Many applications, such as Point-of-Sale (xe2x80x9cPOSxe2x80x9d) terminals, use personal computers as a base to support a wide variety of devices, such as scanners, cash drawers, video monitors, printers, and keyboards. In a POS terminal, the keyboard often contains more keys than that of a 112 key keyboard typically used in personal computers (i.e., the xe2x80x9cstandard keyboardxe2x80x9d used to input xe2x80x9cconventional keystroke dataxe2x80x9d). The additional keys of a POS terminal allow for the input of xe2x80x9cnon-conventional keystroke dataxe2x80x9d such as cash register commands, and other comments specifically relating to POS terminals. Many of these terminals use standard operating systems such as DOS, Windows 3.11, Windows 9x or Windows NT. These terminals also use a specialized software system or a xe2x80x9cmid-levelxe2x80x9d system of software drivers and programs layered between the operating system and POS application programs. This system of drivers and programs are known by those in the art as Point of Sale Subsystem (xe2x80x9cPOSSxe2x80x9d). They are considered xe2x80x9cmid-levelxe2x80x9d because they are loaded into the computer memory after the operating system has been loaded, but before the application programs have been loaded. The POSS contain the additional drivers and functionality necessary for the control and operation of hardware and equipment unique to the POS terminal environment, such as check scanners and cash register drawers.
Application programs are considered xe2x80x9chigh levelxe2x80x9d programs because they are typically loaded after the operating system and the POSS have been loaded (i.e., on top of the operating system). An application program carries out two types of tasks: those related to work being performed, such as accepting text or numbers input related to a sales transaction, and those related to maintenance chores, such as managing files and displaying information on the screen. The maintenance chores are actually performed by the POSS or the operating system in response to a request from the application program. Maintenance chores are considered by those in the art to be lower level functions. Standard application programs are those programs typically running on personal computers, examples include Microsoft WORD or EXCEL. In contrast, specialized application programs are designed to work specifically in the POS environment.
Although the newly-introduced USB provides for integration of many peripherals to a PC, there are problems with non-standard equipment. Existing USB architecture does not accept the additional keys of a POS keyboard nor keyboard data other than normal keystroke data. Thus, USB keyboards cannot be used on POS terminals unless the POS application program is designed to work with a particular keyboard. In other words, each application program must be specifically designed to interface with a variety of POS keyboards, resulting in higher software development, maintenance and support costs. Furthermore, designing an application program to work with a particular keyboard results in a significant loss of flexibility because the application program must be revised whenever a new POS keyboard becomes available.
It is also desirable for a POS keyboard to be able to work in multiple modes, in other words, in one or more modes as a POS keyboard, and in another mode as a standard keyboard. The standard keyboard mode is necessary for updating and loading xe2x80x9clower levelxe2x80x9d software such as the Basic Input/Output System (i.e., BIOS), the operating system, and diagnostics. Unless the keyboard can function as a standard keyboard, another keyboard will have to be used when updating lower level software. Additionally, such a keyboard should be able to readily switch between the modes of operation.
What is needed, therefore, is a non-standard USB keyboard that will attach to a POS terminal through a standard USB port such that the keyboard mimics a standard USB keyboard. In another mode, the keyboard should allow the recognition of additional POS keys (a POS mode). In yet another mode, the keyboard should permit use of an alternative protocol that communicates through the USB.
The previously mentioned needs are fulfilled with the present invention. Accordingly, there is provided, in a first form, a computer system (i.e. host computer) comprising a CPU (i.e. computer unit) coupled with a data communication bus interface, an operating system, an applications program, and an input device which communicates with the computer unit through the data communications bus interface by operating in a standard mode, and in at least one non-standard mode. There is also provided a method for communicating between a Universal Serial Bus (USB) device and a software application program running on a host computer where such communication occurs in a USB mode and at least one non-standard USB mode. This method includes creating a non-standard data structure consisting of independent data stacks which bypasses portions of the standard data stack in the operating system running on said host computer.
One embodiment is a computer system using a keyboard that operates in three functional USB modes. The first mode is a standard USB keyboard mode which supports only standard computer keyboard keys and light emitting diodes (xe2x80x9cLEDsxe2x80x9d). In this mode, the POS function keys are mapped to unusual keys that are included in the USB standards (Universal Serial Bus Specifications, revision 1.1, Sep. 23, 1998), but are not on a standard PC keyboard, such as F13, F14, mute, etc. Such standard keys found in the keyboard in this mode are usable by any software application that does not depend on the POS function keys. Thus, the user can update the BIOS, use DOS or perform other functions without relying on the loading of a relatively high level driver before the keyboard can be used.
The second mode supports standard computer keyboard keys plus POS function keys. This mode is also usable by any application that is selected by the user to be xe2x80x9cin focus,xe2x80x9d To be in focus, from the operator""s perspective, is when the application window is xe2x80x9con topxe2x80x9d of the other windows. The operator is, therefore, directly interfacing with the window that is xe2x80x9cin focus.xe2x80x9d Key strokes from the keyboard are communicated to the application program through a new software driver that by-passes a portion of the standard operating system USB software stack and then connects back into the standard operating system USB stack. The USB stack subsequently connects to the operating system message queue. A message queue is an ordered line of messages awaiting transmission, from which they are taken up on a first in, first out (xe2x80x9cFIFOxe2x80x9d) basis.
The third mode will support the standard computer keyboard keys plus POS function keys and LEDs, using an alternative protocol that communicates via USB. This mode is only usable by POS sales applications. All keyboard data is communicated through a software driver that communicates directly to the POSS driver. Thus, the communication bypasses all of the standard operating system USB software stack and the standard operating system message queue. In this mode, an operator cannot have access to the terminal""s non-POS applications.
The keyboard is able to operate in these modes because of: (1) additional software routines in the keyboard""s firmware that allow it to identify itself as a different USB device, and (2) additional software drivers in the host that co-exist with the standard USB drivers (i.e., the drivers that came with the operating system). These additional drivers create additional data stacks in the host""s memory to work independently from the standard USB data stack. Additionally, there is also provided a hardware means to force the USB host to renumerate the keyboard as a new device to enable it to switch between the modes.
These and other features, and advantages, will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings. It is important to note the drawings are not intended to represent the only form of the invention.